As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
One class of information handling systems is sometimes referred to as a server cluster or, more simply, a cluster. A cluster generally includes two or more cluster nodes that cooperate in some fashion to achieve improved availability, performance, or both. Each cluster node generally has its own processing resources (e.g., its own general purpose microprocessors).
The exemplary embodiments described in the following detailed description emphasize high availability (HA) server clusters. HA server clusters generally include two or more cluster nodes that share access to one or more data storage resources. Data storage resources include, as examples, individual hard disks and/or partitions of individual hard disks and arrays of individual hard disks. A data storage resource may be implemented as networked storage including a storage area network (SAN) or a networked attached storage (NAS) resource.
In many applications including high availability applications, storage resources generally employ arrays of hard disks to achieve redundancy and error correction. RAID (redundant array of inexpensive disks) is a well known family of protocols and technologies that employ disk arrays. The physical disk arrays may be virtually partitioned into “volumes.” A logical unit number (LUN) may be assigned to an individual disk or to a virtual partition or volume. The term “LUN” originated in the context of the SCSI (Small Computer System Interface) protocol as a way to differentiate individual disk drives at a common SCSI target, but the term has become commonplace in the field of enterprise storage generally.
In at least some implementations, a cluster node performs an operation referred to as “binding” to create a single device of access from redundant block devices discovered during the connection or association between a node and a LUN or other shared storage resource. Binding may be employed beneficially in applications where multiple physical paths exist between a cluster node and a LUN. When a node binds a shared storage resource, the node creates binding information and associates the binding information with the shared storage resource. The binding information may be referred to herein as a label. In some cases, binding information or labels may resemble UNIX directory paths (e.g., /deviceA).
For a variety of reasons, it is advantageous if binding of shared storage resources is done consistently across the nodes in a cluster. If, for example, Node 1 of a cluster binds a shared storage resource as “Label1,” it is desirable that Node 2 binds to the same shared storage resource using the same binding information (i.e., “Label1”). Unfortunately, conventional server cluster implementations do not enforce consistent, inter-node binding of shared storage resources.